package com.qjdchina.sku.biz.impl;

import java.util.Date;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.qjdchina.commons.enums.IsDeleted;
import com.qjdchina.commons.result.Result;
import com.qjdchina.sku.biz.SkuItemAttributeManager;
import com.qjdchina.sku.converter.SkuItemAttributeConverter;
import com.qjdchina.sku.dao.mapper.SkuItemAttributeMapper;
import com.qjdchina.sku.model.SkuItemAttribute;
import com.qjdchina.sku.model.vo.SkuItemAttributeVO;
import com.qjdchina.sku.service.enums.SkuResultCode;
@Service
public class SkuItemAttributeManagerImpl implements SkuItemAttributeManager{
	@Autowired
	private SkuItemAttributeMapper skuItemAttributeMapper;

	
	/**
	 * 创建表头属性值
	 * shenpingfeng
	 * 2017年2月14日
	 * @param skuItemAttributeVO
	 * @return
	 */
	@Override
	public Result<String> create(SkuItemAttributeVO skuItemAttributeVO) {
		if(skuItemAttributeVO == null){
			return new Result<String>(SkuResultCode.PARAMETER_NOT_EMPTY);
		}
		SkuItemAttribute skuItemAttribute = SkuItemAttributeConverter.toSkuItemAttribute(skuItemAttributeVO);
		skuItemAttribute.setGmtCreated(new Date());
		skuItemAttribute.setGmtModified(new Date());
		skuItemAttribute.setIsDeleted(IsDeleted.NO.getValue());
		
		int row = skuItemAttributeMapper.insertSelective(skuItemAttribute);
		if(row == 0){
			return new Result<String>(SkuResultCode.ADD_FAIL);
		}
		
		return new Result<String>(skuItemAttributeVO.getValue());
	}
	
	/**
	 * 更新表头属性值
	 * shenpingfeng
	 * 2017年2月14日
	 * @param skuItemAttributeVO
	 * @return
	 */
	@Override
	public Result<String> update(SkuItemAttributeVO skuItemAttributeVO) {
		if(skuItemAttributeVO == null || skuItemAttributeVO.getId() == null){
			return new Result<String>(SkuResultCode.PARAMETER_NOT_EMPTY);
		}
		SkuItemAttribute skuItemAttribute = SkuItemAttributeConverter.toSkuItemAttribute(skuItemAttributeVO);
		
		int row = skuItemAttributeMapper.updateByPrimaryKeySelective(skuItemAttribute);
		if(row == 0){
			return new Result<String>(SkuResultCode.UPDATE_FAIL);
		}
		
		return new Result<String>(skuItemAttributeVO.getValue());
	}
	/**
	 * 根据skuItemId和value获取
	 * shenpingfeng
	 * 2017年2月22日
	 * @param skuItemId
	 * @param value
	 * @return
	 */
	@Override
	public Result<SkuItemAttributeVO> getSkuItemAttributeBySkuItemIdAndValue(Integer skuItemId,String value) {
		if(skuItemId == null || StringUtils.isBlank(value)){
			return new Result<SkuItemAttributeVO>(SkuResultCode.PARAMETER_NOT_EMPTY);
		}
			
		SkuItemAttribute skuItemAttribute = skuItemAttributeMapper.selectSkuItemAttributeBySkuItemIdAndValue(skuItemId, value);
		if(skuItemAttribute == null){
			return new Result<SkuItemAttributeVO>(SkuResultCode.DATA_NOT_EXIST);
		}
		SkuItemAttributeVO skuItemAttributeVO = SkuItemAttributeConverter.toSkuItemAttributeVO(skuItemAttribute);
		
		return new Result<SkuItemAttributeVO>(skuItemAttributeVO);
	}




}
